In industrial environments, such as in utilities industries or communications industries, services such as equipment installation, equipment maintenance or repair works are often performed by service organizations that respond to service requests from customers. For example, customers frequently order certain services to be performed by the service organisation. The organization then dispatches service persons, such as technicians, to the location of the customers to actually perform the service.
Service requests are related to a variety of conditions. From a time aspect, service requests can have an appointment window during that the service has to be performed. The window usually can have an earliest start time and a latest end time. From a space aspect, the service can be performed at a geographical location that is identified, for example, by a street address, or by geographical coordinates. The technician can move physically to and from the location. Further aspects include—to name only a few—skill sets of the service persons, priorities in comparison to other requests, or potential gains or benefits for the organization.
The service organization can optimize the use of its workforce, and assigning services to persons or equipment can become a computer technique. The computer receives the details for all requests including locations and time slots, and the computer receives data regarding the service persons such as skill sets and allowable duty times. The computer calculates plans or schedules, and personalizes the results to specified persons as duty-rosters or the like. Such a duty-roster can be a document that lists a sequence of jobs to be performed by the person along a calculated route or tour of geographical locations.
However, real-life service organisations handle thousands of requests per day, so that the computer handles a huge amount of data. The computation can call for substantial resources (in terms of processors and memory) and—as a limiting constraint—the time it takes the computer to calculate the assignments is comparable to the time it takes the persons to perform the service and to travel along the routes. As a consequence, assignments are usually calculated overnight (or day-ahead) when the services are not yet due.
To further complicate the topic, the requests can change. The customer can cancel a request, move to a different location, desire a different appointment window etc. Service persons can become non-available, or transportation along the calculated routes can become interrupted. As a consequence, the computer receives data that is continuously changing. The changes usually become evident when the duty-rosters have been distributed, very often during day-times. The changing data comes from a variety of sources, for example, from call centres, traffic information control systems, from applications that monitor equipment.
For the computers, this situation results in a number of conflicting constraints. For example, the changes should be accommodated by the computer within a short computation time, but the accuracy of the assignment has to be maintained.